package design_pattern.singleton;

/**
 * @author corn
 * @create 2021-10-22 21:31
 * @Description: 依赖于静态内部类实现
 *  1、私有化构造方法
 *  2、静态内部类包含一个外部类对象实例
 *  3、外部类提供一个方法，内部获取内部类的实例
 */
public class LazySingletonDemo3 {
    /**
     * 私有化构造方法
     */
    private LazySingletonDemo3(){}

    /**
     * 静态内部类包含外部类的一个实力对象
     */
    static class Provider{
        public static LazySingletonDemo3 instance = new LazySingletonDemo3();
    }

    /**
     * 静态方法不执行的话，就不会调用静态内部类；
     * @return
     */
    public static LazySingletonDemo3 getInstance(){
        return Provider.instance;
    }

}
